package com.btpn.custody.service;

import java.util.Date;
import java.util.List;

import com.btpn.custody.entity.Branch;
import com.btpn.custody.web.m002.model.BranchModel;
import com.btpn.custody.web.m002.model.Param;

public interface IBranchService {
	
	/* =================================================== B A S I C ==================================================== */
	void createBranch(Branch branch, Long areaId);

//	List<Branch> findAllBranch();

//	Branch getBranch(Long id);

	void updateBranch(Long branchId, String code, String name, Long areaId) throws Exception;

//	void deleteBranch(Long id);

//	Integer getBranchCount();
	
	/* =================================================== C U S T O M ================================================== */
//	List<Branch> findBranchNotById(Long id, Long from, Long to);
	
	// return BranchModel for Checklist
//	List<BranchModel> findBranchsWithChecklistChilds(Long areaId);
//	BranchModel getBranchsWithChecklistChilds(Long branchId);
	// return BranchModel for Receiving
//	BranchModel getBranchsWithReceiveChilds(Long branchId);
	// return BranchModel for Completing
//	BranchModel getBranchsWithCompleteChilds(Long branchId);
	
	// return BranchModel for Checklist, Receiving, Completing by status
//	BranchModel getBMbyBranchId_Status(Long branchId, String status);
	
//	List<Branch> findBranchByCriteria(DetachedCriteria dc, Integer from, Integer size);
	
	BranchModel search(Long areaId, String status, String keyword, String branchId, String accCode, String cstCode, Date from, Date to);
	
	// return branch key and value
	List<Param> findBranchMap(Long areaId, String status);
	
}
